package com.salary.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;

import com.salary.entity.BasicSalary;
import com.salary.entity.SalaryRecord;
import com.salary.entity.dto.SalaryRecordDTO;
import com.staff.entity.Staff;


public interface ISalaryRecordService {
	public void saveOrUpdate(SalaryRecord salaryRecord);
	public void delete(SalaryRecord salaryRecord);
	public void delete(List<Long> ids);
	public SalaryRecord findOne(Long id);
	public Staff findStaff(SalaryRecord salaryRecord);
	public BasicSalary findBasicSalary(SalaryRecord salaryRecord);
	public List<SalaryRecord> findAll();
	public Page<SalaryRecord> findAll(Specification<SalaryRecord> spec, Pageable pageable);
	public List<Integer> getYears();
	public List<Integer> getMonthsByYear(int year);
	public List<SalaryRecordDTO> findByYear(int year);
	public List<SalaryRecordDTO> findByYearAndMonth(int year,int month); 
	public Page<SalaryRecordDTO> findPage(String staffName,String staffNum,Integer year,Integer month,Pageable pageable);
}
